home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / v8n21.arc / TRIG.PAS < prev    next >
Pascal/Delphi Source File  |  1989-11-11  |  2KB  |  69 lines

  1. TRIG.PAS
  2.  
  3.  
  4.  
  5. UNIT Trig;
  6.   (**********************)
  7.   (**)  INTERFACE     (**)
  8.   (**********************)
  9.  
  10. FUNCTION ArcCos(X : Real; VAR Error : Boolean) : Real;
  11. FUNCTION ArcSin(X : Real; VAR Error : Boolean) : Real;
  12.  
  13.   (**********************)
  14.   (**) IMPLEMENTATION (**)
  15.   (**********************)
  16.  
  17.   FUNCTION ArcCos(X : Real; VAR Error : Boolean) : Real;
  18.   { This function calculates the inverse cosine
  19.     (or "arc cosine") of the argument X.  The
  20.     arc cosine is the angle whose cosine is the
  21.     argument.}
  22.   VAR temp : Real;
  23.   BEGIN
  24.     IF Abs(X) > 1.0 THEN
  25.       BEGIN
  26.         Error := True;
  27.         ArcCos := 0.0;
  28.       END
  29.     ELSE
  30.       BEGIN
  31.         Error := False;
  32.         IF X = 0.0 THEN ArcCos := Pi/2.0
  33.         ELSE
  34.           IF X = -1.0 THEN ArcCos := Pi
  35.           ELSE
  36.             BEGIN
  37.               temp := ArcTan(Sqrt(1.0-Sqr(X))/X);
  38.               IF temp < 0 THEN ArcCos := temp+Pi
  39.               ELSE ArcCos := temp;
  40.             END;
  41.       END;
  42.   END;                            {function ArcCos}
  43.  
  44.  
  45.   FUNCTION ArcSin(X : Real; VAR Error : Boolean) : Real;
  46.   { This function calculates the inverse sine
  47.     (or "arc sine") of the argument X.  The
  48.     arc sine is the angle whose sine is the
  49.     argument.}
  50.   BEGIN
  51.     IF Abs(X) > 1.0 THEN
  52.       BEGIN
  53.         Error := True;
  54.         ArcSin := 0.0;
  55.       END
  56.     ELSE
  57.       BEGIN
  58.         Error := False;
  59.         IF X = -1.0 THEN ArcSin := -Pi/2.0
  60.         ELSE
  61.           IF Abs(X) = 1.0 THEN ArcSin := Pi/2.0
  62.           ELSE ArcSin := ArcTan(X/Sqrt(1.0-Sqr(X)));
  63.       END;
  64.   END;                            {function ArcSin}
  65.  
  66. END.                              {unit Trig}
  67.  
  68.  
  69.